package cn.catsdad.service.api;

import cn.catsdad.base.service.api.IBaseCrudService;
import cn.catsdad.dto.RoleDTO;
import cn.catsdad.vo.TreeNodeVO;

import java.util.Collection;
import java.util.List;

/**
 * 角色service
 *
 * @author xuyonglong
 * @version V1.0 2023/4/13
 */
public interface RoleService extends IBaseCrudService<RoleDTO, Long> {

    /**
     * 设置用户
     *
     * @param role 数据传输对象
     */
    void setUsers(RoleDTO role);

    /**
     * 绑定功能项
     *
     * @param id      角色id
     * @param menuIds 功能项id集合
     */
    void bingMenus(Long id, Collection<Long> menuIds);

    /**
     * 根据角色获取菜单权限树形
     *
     * @param roleIds 角色id集合
     * @return 菜单树形
     */
    List<TreeNodeVO> queryMenuTree(Collection<Long> roleIds);

}
